<?php

/**
 * Clase para manejar la tabla predio
 *
 * Contiene las operaciones CRUD para la tabla 
 * registro_predio
 *
 * @author Jorge Rojas jerojasol@gmail.com
 */
class predio {

    private $idpredio;
    private $vereda;
    private $descripcion;
    private $estrato;
    private $hectareas_total;
    private $hectareas_conservar;
    private $actividad_economica;
    private $direccion;
    private $info_juridica;
    private $id_gis;
    private $estado;
    private $acueducto;
    private $cuencas;
    private $idmunicipio;
    private $iddepartamento;
    private $nombre;
    private $matricula;
    private $fuentes;
    private $formaciones;
    private $fecha_edicion;
    private $fecha_cargue;
    private $id;

    public function getIdpredio() {
        return $this->idpredio;
    }

    public function setIdpredio($idpredio) {
        $this->idpredio = $idpredio;
    }

    public function getVereda() {
        return $this->vereda;
    }

    public function setVereda($vereda) {
        $this->vereda = $vereda;
    }

    public function getDescripcion() {
        return $this->descripcion;
    }

    public function setDescripcion($descripcion) {
        $this->descripcion = $descripcion;
    }

    public function getEstrato() {
        return $this->estrato;
    }

    public function setEstrato($estrato) {
        $this->estrato = $estrato;
    }

    public function getHectareas_total() {
        return $this->hectareas_total;
    }

    public function setHectareas_total($hectareas_total) {
        $this->hectareas_total = $hectareas_total;
    }

    public function getHectareas_conservar() {
        return $this->hectareas_conservar;
    }

    public function setHectareas_conservar($hectareas_conservar) {
        $this->hectareas_conservar = $hectareas_conservar;
    }

    public function getActividad_economica() {
        return $this->actividad_economica;
    }

    public function setActividad_economica($actividad_economica) {
        $this->actividad_economica = $actividad_economica;
    }

    public function getDireccion() {
        return $this->direccion;
    }

    public function setDireccion($direccion) {
        $this->direccion = $direccion;
    }

    public function getInfo_juridica() {
        return $this->info_juridica;
    }

    public function setInfo_juridica($info_juridica) {
        $this->info_juridica = $info_juridica;
    }

    public function getId_gis() {
        return $this->id_gis;
    }

    public function setId_gis($id_gis) {
        $this->id_gis = $id_gis;
    }

    public function getEstado() {
        return $this->estado;
    }

    public function setEstado($estado) {
        $this->estado = $estado;
    }
    public function getAcueducto() {
        return $this->acueducto;
    }

    public function setAcueducto($acueducto) {
        $this->acueducto = $acueducto;
    }

    public function getCuencas() {
        return $this->cuencas;
    }

    public function setCuencas($cuencas) {
        $this->cuencas = $cuencas;
    }
    
    public function getIdmunicipio() {
        return $this->idmunicipio;
    }

    public function setIdmunicipio($idmunicipio) {
        $this->idmunicipio = $idmunicipio;
    }

    public function getIddepartamento() {
        return $this->iddepartamento;
    }

    public function setIddepartamento($iddepartamento) {
        $this->iddepartamento = $iddepartamento;
    }

    public function getNombre() {
        return $this->nombre;
    }

    public function setNombre($nombre) {
        $this->nombre = $nombre;
    }

    public function getMatricula() {
        return $this->matricula;
    }

    public function setMatricula($matricula) {
        $this->matricula = $matricula;
    }

    public function getFuentes() {
        return $this->fuentes;
    }

    public function setFuentes($fuentes) {
        $this->fuentes = $fuentes;
    }

    public function getFormaciones() {
        return $this->formaciones;
    }

    public function setFormaciones($formaciones) {
        $this->formaciones = $formaciones;
    }
    
    public function getFecha_edicion() {
        return $this->fecha_edicion;
    }

    public function setFecha_edicion($fecha_edicion) {
        $this->fecha_edicion = $fecha_edicion;
    }

    public function getFecha_cargue() {
        return $this->fecha_cargue;
    }

    public function setFecha_cargue($fecha_cargue) {
        $this->fecha_cargue = $fecha_cargue;
    }
    
    public function getId() {
        return $this->id;
    }

    public function setId($id) {
        $this->id = $id;
    }
        
    function __construct() {
        
    }

    /**
     * Trae todas las familias
     * @param object $xoopsDB conexión
     * @access public
     * @return string
     */
//    public function consultarAll($xoopsDB) {
//        $query = "select * from registro_predio";
//
//        $res = $xoopsDB->query($query);
//
//        $familias = array();
//        $q = 1;
//        while ($myrow = $xoopsDB->fetchArray($res)) {
//            $familias[$q]['idfamilia'] = $myrow['idfamilia'];
//            $familias[$q]['tipo_identificacion'] = $this->descripcionTI($myrow['tipo_identificacion']);
//            $familias[$q]['identificacion'] = $myrow['identificacion'];
//            $familias[$q]['nombres'] = $myrow['nombres'];
//            $familias[$q]['apellidos'] = $myrow['apellidos'];
//            $familias[$q]['descripcion_familia'] = $myrow['descripcion_familia'];
//            $familias[$q]['numero_cuenta'] = $myrow['numero_cuenta'];
//            $familias[$q]['banco_cuenta'] = $myrow['banco_cuenta'];
//            $familias[$q]['estado'] = $myrow['estado'];
//            $q++;
//        }
//        return $familias;
//
//        if ($familias) {
//            return $familias;
//        } else {
//            return false;
//        }
//    }

    /**
     * Consultar por id
     * @param object $id identificador de la familia que se desea buscar
     * @param object $xoopsDB conexión
     * @access public
     * @return string
     */
    public function consultarByIdFamilia($id, $xoopsDB) {
        $query = "select p.* from registro_predio p, registro_familia f, registro_familia_predio fp where fp.idfamilia = f.idfamilia and fp.idpredio = p.idpredio and f.idfamilia = $id";

        $res = $xoopsDB->query($query);
        if ($res) {

            $myrow = $xoopsDB->fetchArray($res);

            $this->setIdpredio($myrow['idpredio']);
            $this->setActividad_economica($myrow['actividad_economica']);
            $this->setDescripcion($myrow['descripcion']);
            $this->setDireccion($myrow['direccion']);
            $this->setEstado($myrow['estado']);
            $this->setEstrato($myrow['estrato']);
            $this->setFormaciones($myrow['formaciones']);
            $this->setFuentes($myrow['fuentes']);
            $this->setHectareas_conservar($myrow['hectareas_conservar']);
            $this->setHectareas_total($myrow['hectareas_total']);
            $this->setId_gis($myrow['id_gis']);
            $this->setAcueducto($myrow['acueducto']);
            $this->setCuencas($myrow['cuencas']);
            $this->setIddepartamento($myrow['iddepartamento']);
            $this->setIdmunicipio($myrow['idmunicipio']);
            $this->setInfo_juridica($myrow['info_juridica']);
            $this->setMatricula($myrow['matricula']);
            $this->setNombre($myrow['nombre']);
            $this->setFecha_edicion($myrow['fecha_edicion']);
            $this->setFecha_cargue($myrow['fecha_cargue']);
            $this->setId($myrow['id']);

            return $res;
        } else {
            return false;
        }
    }

    /**
     * Consultar por id municipio
     * @param object $idMunicipio identificador del municipio a los que pertenecen los predios
     * @param object $xoopsDB conexión
     * @access public
     * @return string
     */
    public function consultarByIdMunicipio($idMunicipio) {
        
        global $xoopsDB;
        
        $query = "SELECT * FROM `siambiental_psa`.`registro_predio` where idmunicipio = $idMunicipio";

        $res = $xoopsDB->query($query);

        $predios = array();
        $i = 1;
        while ($myrow = $xoopsDB->fetchArray($res)) {
            $predios[$i]['idpredio'] = $myrow['idpredio'];
            $predios[$i]['direccion'] = $myrow['direccion'];
            $predios[$i]['nombre'] = $myrow['nombre'];
            $predios[$i]['id'] = $myrow['id'];

            $query = "SELECT ff.* FROM registro_familia_fotos ff, registro_predio p, registro_familia_predio fp 
                    where ff. idfamilia = fp.idfamilia and fp.idpredio = p.idpredio and p.idpredio = ".$myrow['idpredio'];

            $resFotos = $xoopsDB->query($query);
            $fotos = array();
            $q = 1;
            while ($myrowFotos = $xoopsDB->fetchArray($resFotos)) {
                $fotos[$q]['url_foto'] = $myrowFotos['url_foto'];
                $q++;
            }

            $predios[$i]['fotos'] = $fotos;
            $i++;
        }

        return $predios;

        if ($predios) {
            return $predios;
        } else {
            return false;
        }
    }

    /**
     * Consultar por id del gis
     * @param object $idgis identificador del formulario del gis
     * @param object $xoopsDB conexión
     * @access public
     * @return string
     */
    public function consultarByIdGis($idgis, $xoopsDB) {
        $query = "select p.idpredio from registro_predio p where p.id_gis = '$idgis'";

//        echo $query;

        $res = $xoopsDB->query($query);

//        var_dump($res);
        $myrow = $xoopsDB->fetchArray($res);

        if ($myrow['idpredio']) {

            $this->setIdpredio($myrow['idpredio']);

            return true;
        } else {
            return false;
        }
    }

    public function consultarNextId($xoopsDB) {

        $query = "SELECT `auto_increment` FROM INFORMATION_SCHEMA.TABLES
                WHERE table_name = 'registro_predio'";

        $res = $xoopsDB->query($query);
        if ($res) {
            $myrow = $xoopsDB->fetchArray($res);
        }

        if ($myrow['auto_increment']) {
            return $myrow['auto_increment'];
        } else {
            return false;
        }
    }

    /**
     * Busca una familia por su id
     * @param object $xoopsDB conexión
     * @access public
     * @return string
     */
    public function updateById($xoopsDB) {
        $query = "	UPDATE `siambiental_psa`.`registro_predio`
                            SET
                            `descripcion` = '$this->descripcion',
                            `estrato` = $this->estrato,
                            `hectareas_conservar` = $this->hectareas_conservar,
                            `actividad_economica` = '$this->actividad_economica',
                            `direccion` = '$this->direccion',
                            `estado` = '$this->estado',
                            `acueducto` = '$this->acueducto',
                            `cuencas` = '$this->cuencas',
                            `idmunicipio` = $this->idmunicipio,
                            `iddepartamento` = $this->iddepartamento,
                            `nombre` = '$this->nombre',
                            `matricula` = '$this->matricula',
                            `fuentes` = '$this->fuentes',
                            `fecha_edicion` = '".date('Y-m-d h:i:s')."',
                            `formaciones` = '$this->formaciones' 
                            WHERE `idpredio` = $this->idpredio";

        echo $query;

        $res = $xoopsDB->query($query);
        if (!$res) {
            return false;
        } else {
            return true;
        }
    }

    /**
     * Inserta una nueva familia
     * @param object $xoopsDB conexión
     * @access public
     * @return string
     */
    public function insert($xoopsDB) {
        $query = " INSERT INTO `siambiental_psa`.`registro_predio`
                (`descripcion`,
                `estrato`,
                `hectareas_total`,
                `hectareas_conservar`,
                `actividad_economica`,
                `direccion`,
                `info_juridica`,
                `id_gis`,
                `estado`,
                `acueducto`,
                `cuencas`,
                `idmunicipio`,
                `iddepartamento`,
                `nombre`,
                `matricula`,
                `fuentes`,
                `fecha_cargue`,
                `formaciones`,
                `id`)
                VALUES
                ('$this->descripcion',
                $this->estrato,
                $this->hectareas_total,
                $this->hectareas_conservar,
                '$this->actividad_economica',
                '$this->direccion',
                $this->info_juridica,
                '$this->id_gis',
                '$this->estado',
                '$this->acueducto',
                '$this->cuencas',
                $this->idmunicipio,
                $this->iddepartamento,
                '$this->nombre',
                '$this->matricula',
                '$this->fuentes',
                '".date('Y-m-d h:i:s')."',
                '$this->formaciones',
                $this->id)";

//        echo "<br>";
//        echo $query;
//        echo "<br>";

        $res = $xoopsDB->query($query);
        if (!$res) {
            return false;
        } else {
            return true;
        }
    }

    /**
     * Retorna la descripcion del tipo de identificación
     * 
     * @param type $tipoIdentificacion tipo de identificacion del cual se desea conocer la descripcion
     * @return string
     */
//    function descripcionTI($tipoIdentificacion) {
//
//        $descripcion = "";
//        if ($tipoIdentificacion == 1) {
//            $descripcion = "CC. ";
//        } else {
//            $descripcion = "CE. ";
//        }
//        return $descripcion;
//    }
}

?>
